//++++++++++++++++++++++++++++++++++++
// QuantV 3.0.0 shader
// Original code by Rockstar Games
//++++++++++++++++++++++++++++++++++++
ps_4_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb1[16], immediateIndexed
dcl_constantbuffer cb2[16], immediateIndexed
dcl_constantbuffer cb5[7], immediateIndexed
dcl_constantbuffer cb12[18], immediateIndexed
dcl_constantbuffer cb10[3], immediateIndexed
dcl_constantbuffer cb9[2], immediateIndexed
dcl_sampler s1, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, mode_default
dcl_sampler s6, mode_default
dcl_sampler s7, mode_default
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t7
dcl_resource_texture2dms(0) (float,float,float,float) t8
dcl_resource_texture2dms(0) (float,float,float,float) t10
dcl_resource_texture2dms(0) (float,float,float,float) t12
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xyzw
dcl_input_ps_sgv v3.x, sampleIndex
dcl_output o0.xyzw
dcl_temps 5
mul r0.xy, v1.xyxx, cb2[15].xyxx
ftoi r0.xy, r0.xyxx
mov r0.zw, l(0,0,0,0)
ldms r1.x, r0.xyww, t12.xyzw, v3.x
add r1.x, -r1.x, cb12[17].w
add r1.x, r1.x, l(1.000000e+000)
div r1.x, cb12[17].z, r1.x
div r1.yz, v2.xxyx, v2.wwww
mad r1.yz, r1.yyzy, r1.xxxx, cb1[15].xxyx
add r1.w, r1.x, l(-5.120000e+002)
mul r2.x, r1.w, l(1.250000e-002)
mad_sat r1.w, -r1.w, l(1.250000e-002), l(1.000000e+000)
mul r1.yz, r1.yyzy, cb10[0].xxxx
sample r1.y, r1.yzyy, t5.yxzw, s5
add_sat r1.y, r1.y, -cb10[1].x
mul r1.y, r1.w, r1.y
lt r1.y, l(0.000000e+000), r1.y
div r2.yzw, v2.xxyz, v2.wwww
mad r1.xzw, r2.yyzw, r1.xxxx, cb1[15].xxyz
mul r2.yz, r1.xxzx, cb10[0].xxxx
sample r2.y, r2.yzyy, t5.yxzw, s5
mul r2.zw, r1.xxxz, l(0.000000e+000, 0.000000e+000, 5.000000e-001, 5.000000e-001)
sample r2.zw, r2.zwzz, t6.zwxy, s6
mad r3.xy, r1.xzxx, cb9[1].xyxx, cb9[1].zwzz
mad r3.xy, r3.xyxx, l(1.000000e+000, -1.000000e+000, 0.000000e+000, 0.000000e+000), l(0.000000e+000, 1.000000e+000, 0.000000e+000, 0.000000e+000)
sample r3.xy, r3.xyxx, t7.xyzw, s7
if_nz r1.y
  ldms r1.y, r0.xyww, t8.xwyz, v3.x
  ldms r0.x, r0.xyzw, t10.xyzw, v3.x
  sample r0.y, v1.xyxx, t4.yxzw, s4
  mul r0.x, r0.y, r0.x
  dp2 r0.x, r0.xxxx, r0.xxxx
  mov_sat r2.x, r2.x
  add r0.y, -r2.x, l(1.000000e+000)
  add r0.z, r1.y, cb10[0].y
  mul_sat r0.z, r0.z, cb10[0].z
  mul r0.y, r0.y, r0.z
  mul r0.zw, v1.xxxy, cb10[2].xxxy
  ftoi r4.xy, r0.zwzz
  mov r4.zw, l(0,0,0,0)
  ldms r0.z, r4.xyzw, t10.yzxw, l(0)
  add r0.w, r0.z, l(-5.000000e-001)
  add_sat r0.z, r0.z, r0.z
  mul r0.z, r0.z, r0.z
  mul r0.z, r0.z, r0.z
  mul r0.y, r0.z, r0.y
  add_sat r0.z, r2.y, -cb10[1].x
  mad r0.y, r0.z, r0.y, l(-7.812500e-002)
  mul_sat r0.yw, r0.yyyw, l(0.000000e+000, 1.185185e+000, 0.000000e+000, 8.000000e+000)
  add r1.xyz, -r1.xzwx, cb1[15].xyzx
  dp3 r0.z, r1.xyzx, r1.xyzx
  rsq r0.z, r0.z
  mul r1.xyz, r0.zzzz, r1.xyzx
  mad r2.xy, r2.zwzz, l(2.000000e+000, 2.000000e+000, 0.000000e+000, 0.000000e+000), l(-1.000000e+000, -1.000000e+000, 0.000000e+000, 0.000000e+000)
  add r2.zw, r3.xxxy, l(0.000000e+000, 0.000000e+000, -1.960784e-003, -1.960784e-003)
  mad r2.xy, r2.zwzz, l(2.000000e+000, 2.000000e+000, 0.000000e+000, 0.000000e+000), r2.xyxx
  add r2.xy, r2.xyxx, l(-1.000000e+000, -1.000000e+000, 0.000000e+000, 0.000000e+000)
  mul r2.xy, r0.wwww, r2.xyxx
  dp2 r0.z, r2.xyxx, r2.xyxx
  add r0.z, -r0.z, l(1.000000e+000)
  sqrt r2.z, |r0.z|
  dp3_sat r0.z, r1.xyzx, r2.xyzx
  add r0.z, -r0.z, l(1.000000e+000)
  mul r0.w, r0.z, r0.z
  mul r0.w, r0.w, r0.w
  mul r0.z, r0.w, r0.z
  mad r0.z, r0.z, l(9.796300e-001), l(2.037000e-002)
  dp3 r0.w, -r1.xyzx, r2.xyzx
  min r0.w, r0.w, l(0.000000e+000)
  mul r2.xyz, r0.wwww, r2.xyzx
  mad r1.xyw, -r2.xyxz, l(2.000000e+000, 2.000000e+000, 0.000000e+000, 2.000000e+000), -r1.xyxz
  lt r0.w, r1.w, l(0.000000e+000)
  movc r0.w, r0.w, r1.z, r1.w
  add r1.z, cb5[6].z, l(-5.000000e+000)
  lt r1.w, l(0.000000e+000), r1.z
  movc r1.z, r1.w, l(-5.000000), r1.z
  mul r1.xyw, r1.xyxx, l(-2.500000e-001, 5.000000e-001, 0.000000e+000, 2.500000e-001)
  add r2.x, |r0.w|, l(1.000000e+000)
  div r1.xyw, r1.xyxw, r2.xxxx
  add r1.xyw, -r1.xyxw, l(7.500000e-001, 5.000000e-001, 0.000000e+000, 2.500000e-001)
  lt r0.w, l(0.000000e+000), r0.w
  movc r1.xy, r0.wwww, r1.xyxx, r1.wyww
  sample_l r1.xyz, r1.xyxx, t1.xyzw, s1, r1.z
  mul r1.xyz, r0.zzzz, r1.xyzx
  add r0.x, r0.x, -cb10[1].w
  mul_sat r0.x, r0.x, l(1.500000e+000)
  add r0.w, -cb10[1].z, l(1.000000e+000)
  mad r0.z, r0.w, r0.z, cb10[1].z
  mul r0.y, r0.y, l(3.000000e+000)
  min r0.y, r0.y, l(1.000000e+000)
  mul r0.y, r0.y, r0.z
  mul o0.w, r0.x, r0.y
  mul o0.xyz, r1.xyzx, cb2[14].zzzz
else
  mov o0.xyzw, l(0,0,0,0)
endif
ret